/*
* rem适配，2019-07-13
* 全屏: 3.75rem
* 加入系统设置字体大小后自动矫正根元素字体，使rem适配依然有效
*
* */

(function (doc, win) {
  var docEl = doc.documentElement,
    resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
    recalc = function () {
      var clientWidth = docEl.clientWidth
      if (!clientWidth) return;
      var remFull = 3.75 // 设置以rem为单位全屏的数值
      var size = clientWidth / (remFull * 100) * 100 // 计算根元素字体大小

      docEl.style.fontSize = size + 'px'

      var eDivWidth = 0
      var eDiv = document.createElement('div') // 创建一个全屏的元素，width值必须是 rem 全屏的值

      eDiv.style.width = remFull + 'rem'
      eDiv.style.height = '1px'
      eDiv.style.position = 'fixed'
      eDiv.style.boxSizing = 'border-box'
      document.body.appendChild(eDiv)
      eDivWidth = eDiv.clientWidth

      // 全屏的元素宽度与body宽度不等(用户设置了系统字体大小)，需要重新计算根元素字体大小
      if (clientWidth !== eDivWidth) {
        var timer = setInterval((function () {
          clientWidth = docEl.clientWidth;
          eDivWidth = eDiv.clientWidth

          if (clientWidth !== eDivWidth) {
            docEl.style.fontSize = size * (clientWidth / eDivWidth) + 'px'
          } else {
            clearInterval(timer)
            document.body.removeChild(eDiv)
          }

          return arguments.callee
        })(), 100)
      } else {
        document.body.removeChild(eDiv)
      }
    };
  if (!doc.addEventListener) return;
  win.addEventListener(resizeEvt, recalc, false);
  doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);
